<?php
namespace App\Common\Lib\Fun;

use App\Common as com;

class Network {
	
	/**
	 * 文件下载(下载到临时目录)
	 * @param str $file_url 文件url
	 * @param str $save_relative_path 文件保存路径(相对路径)
	 * @return int 是否下载成功 [0]失败 [1]成功
	 */
	/*
	public static function downFileOfTemp( $file_url, $save_relative_path ){
		// ...
		$save_relative_path = trim( $save_relative_path , DS );
		if( empty( $save_relative_path) ) return com\Lib\Err\GetBack( com\Cla\Err\Code::$sysFunParamError );
		// 检查目录是否合格
		if( strpos( $save_relative_path, '..' ) ) return com\Lib\Err\GetBack( com\Cla\Err\Code::$sysFunParamError );
		//
		$save_path_mid = RUNTIME_PATH . 'temp' . DS . 'assets' . DS . 'down' . DS;
		$save_path_mid .= $save_relative_path;
		//
		if( com\Lib\Fun\Dir_::checkNotExistCreate( dirname( $save_path_mid ) ) != 1 ) return com\Lib\Err\GetBack( com\Cla\Err\Code::$sysFunParamError );
		// 
		$down_data = file_get_contents( $file_url );
		$status = file_put_contents( $save_path_mid, $down_data );
		return $status !== false ? 1 : 0;
	}
	*/
	
	/**
	 * 文件下载(下载到临时目录)
	 * @param str $file_url 文件url
	 * @param str $save_relative_path 文件保存路径(相对路径)
	 * @param array $param 参数数组 <br />
	 * ················· [可空/多选_A/必须](unknown_type)	$param['AAAAA']	说明：AAAAA	<br />
	 * @param array &$return_data [传参]返回数组 <br />
	 * ················· [可空](array)	$return_data['res']	说明：下载结果（return为[1]时才有此值）	<br />
	 * 	[
	 * 
	 * 		'file_path' => '', // 下载文件路径
	 * ]
	 * ················· [可空/多选_A/必须](unknown_type)	$return_data['AAAAA']	说明：AAAAA	<br />
	 * @return int 是否下载成功 [0]下载失败 [1]下载成功
	 */
	public static function downFileOfTemp( $file_url, array $param = [], array &$return_data = [] ){
		//
		$save_path_mid = RUNTIME_PATH . 'temp' . DS . 'assets' . DS . 'down' . DS . 'default' . DS . 'md5name' . DS;
		// 创建目录
		if( com\Lib\Fun\Dir_::checkNotExistCreate( $save_path_mid ) != 1 ) return com\Lib\Err\GetBack( com\Cla\Err\Code::$sysFunParamError );
		// 下载文件
		$down_data = file_get_contents( $file_url );
		// 生成文件名
		$save_path_mid .= md5( $down_data );
		// 写入文件
		$status = file_put_contents( $save_path_mid, $down_data );
		//
		$return_data['res']['file_path'] = $save_path_mid;
		//
		return $status !== false ? 1 : 0;
	}
	
}
